<template>
	<div class="page-container">
		<div v-if="editDialogVisible1" class="page-container">
			<el-tabs v-model="editableTabsValue" type="card" @tab-click="handleClick">
				<el-tab-pane
						:key="item.name"
						v-for="(item, index) in editableTabs"
						:label="item.title"
						:name="item.name"
				></el-tab-pane>
			</el-tabs>

			<!--商品基本信息-->
			<AddOrUpdateProductInfo ref="AddOrUpdateProductInfo"></AddOrUpdateProductInfo>
			<!--商品图片组件-->
			<AddOrUpdateMedia ref="AddOrUpdateMedia"></AddOrUpdateMedia>
			<!--商品描述-->
			<AddOrUpdateDescribe ref="AddOrUpdateDescribe"></AddOrUpdateDescribe>
			<!--商品售后-->
			<AddOrUpdateAfterSale ref="AddOrUpdateAfterSale"></AddOrUpdateAfterSale>
			<!--价格管理列表-->
			<AddOrUpdatePrice ref="AddOrUpdatePrice"></AddOrUpdatePrice>
			<!--类目属性-->
			<AddOrUpdateProperty ref="AddOrUpdateProperty"></AddOrUpdateProperty>
			<!--渠道-->
			<AddOrUpdateChannel ref="AddOrUpdateChannel"></AddOrUpdateChannel>
			<!--销售区域-->
			<AddOrUpdateSaleArea ref="AddOrUpdateSaleArea"></AddOrUpdateSaleArea>
			<!--系列子品-->
			<AddOrUpdateProductParent ref="AddOrUpdateProductParent"></AddOrUpdateProductParent>
			<!--辅计量单位-->
			<!--<AddOrUpdateUnits ref="AddOrUpdateUnits"></AddOrUpdateUnits>-->
			<!--bom商品-->
			<AddOrUpdateBom ref="AddOrUpdateBom"></AddOrUpdateBom>
			<!--首营商品-->
			<AddOrUpdatePill ref="AddOrUpdatePill"></AddOrUpdatePill>
			<!--校标商品-->
			<!--<AddOrUpdateInventory ref="AddOrUpdateInventory"></AddOrUpdateInventory>-->
		</div>
	</div>
</template>

<script>
import CyTable from '@/views/Core/ProductTable'
import KtButton from '@/views/Core/KtButton'
import {format} from '@/utils/datetime'
import TableColumnFilterDialog from '@/views/Core/TableColumnFilterDialog'
import AddOrUpdateMedia from './AddOrUpdateMedia'
import AddOrUpdateDescribe from './AddOrUpdateDescribe'
import AddOrUpdateAfterSale from './AddOrUpdateAfterSale'
import AddOrUpdatePrice from './AddOrUpdatePrice'
import AddOrUpdateProperty from './AddOrUpdateProperty'
import AddOrUpdateChannel from './AddOrUpdateChannel'
import AddOrUpdateSaleArea from './AddOrUpdateSaleArea'
import AddOrUpdateProductParent from './AddOrUpdateProductParent'
// import AddOrUpdateUnits from './AddOrUpdateUnits'
import AddOrUpdateProductInfo from './AddOrUpdateProductInfo'
import AddOrUpdateBom from './AddOrUpdateBom'
import AddOrUpdatePill from './AddOrUpdatePill'
// import AddOrUpdateInventory from './AddOrUpdateInventory'

export default {
	components: {
		CyTable,
		KtButton,
		TableColumnFilterDialog,
		AddOrUpdateMedia,
		AddOrUpdateDescribe,
		AddOrUpdateAfterSale,
		AddOrUpdatePrice,
		AddOrUpdateProperty,
		AddOrUpdateChannel,
		AddOrUpdateSaleArea,
		AddOrUpdateProductParent,
		// AddOrUpdateUnits,
		AddOrUpdateProductInfo,
		AddOrUpdateBom,
		AddOrUpdatePill
		// AddOrUpdateInventory
	},

	data() {
		return {
			categoryId: '',
			productId: 0,
			editableTabs: [],
			size: 'small',
			operation: false, // true:新增, false:编辑
			editDialogVisible: false, // 新增编辑界面是否显示
			editLoading: false,
			editDialogVisibleDetail: false,
			multipleSelection: [],
			editDialogVisible1: true,
			editableTabsValue: '1',
			unitsName: '',
			status: 0
		}
	},

	methods: {
		//商品详情回显
		getDataList() {
			let this_ = this
			if (this_.productId != 0) {
				let params = {}
				params.productId = this_.productId
				this.utils.request.queryProductInfo(params, function (data) {
					if (data.data != null) {
						this_.productId = data.data.id
						this_.categoryId = data.data.categoryId
						this_.unitsName = data.data.unitsName
						this_.status = data.data.status
						// 商品类型 1-普通商品; 2-系列子品; 3.sku商品
						if (data.data.typeOfProduct === 1) {
							this_.editableTabs = [
								{
									title: '商品基本信息',
									name: '1'
								},
								{
									title: '商品图片',
									name: '2'
								},
								{
									title: '商品描述',
									name: '3'
								},
								{
									title: '商品售后',
									name: '4'
								},
								{
									title: '价格管理',
									name: '5'
								},
								{
									title: '类目属性',
									name: '6'
								},
								{
									title: '销售区域',
									name: '8'
								},
								{
									title: '渠道',
									name: '10'
								},
								{
									title: '辅计量单位',
									name: '11'
								},
							]
						} else {
							this_.editableTabs = [
								{
									title: '商品基本信息',
									name: '1'
								},
								{
									title: '商品图片',
									name: '2'
								},
								{
									title: '商品描述',
									name: '3'
								},
								{
									title: '商品售后',
									name: '4'
								},
								{
									title: '价格管理',
									name: '5'
								},
								{
									title: '销售区域',
									name: '8'
								},
								{
									title: '系列子品',
									name: '9'
								},
								{
									title: '渠道',
									name: '10'
								}
							]
						}
						// bom商品
						if (data.data.type === 3 || data.data.type === 4) {
							this_.editableTabs.push({title: '组合商品', name: '12'})
						}
						// 药品
						if (data.data.pillFlag === 1) {
							this_.editableTabs.push({title: '首营商品', name: '13'})
						}
						// 校标款
						// if (data.data.inventoryDisplay === 1) {
						// 	this_.editableTabs.push({title: ' 校标款配置基本款', name: '14'})
						// }
					}
				})
			} else {
				this_.editableTabs = [
								{
									title: '商品基本信息',
									name: '1'
								},
								{
									title: '商品图片',
									name: '2'
								},
								{
									title: '商品描述',
									name: '3'
								},
								{
									title: '商品售后',
									name: '4'
								},
								{
									title: '价格管理',
									name: '5'
								},
								{
									title: '类目属性',
									name: '6'
								},
								{
									title: '销售区域',
									name: '8'
								},
								{
									title: '渠道',
									name: '10'
								},
								{
									title: '辅计量单位',
									name: '11'
								},
							]
			}
		},

		// tab切换
		handleClick(tab) {
      if(this.$route.params.productId){
        this.productId = this.$route.params.productId
      }
			let param = {
				productId: this.productId,
				flag: false,
				categoryId: this.categoryId,
			}
			if (tab.name === '1') {
				this.$refs.AddOrUpdateMedia.init(false)
				this.$refs.AddOrUpdateDescribe.init(param)
				this.$refs.AddOrUpdateAfterSale.init(param)
				this.$refs.AddOrUpdatePrice.init(param)
				this.$refs.AddOrUpdateProperty.init(param)
				this.$refs.AddOrUpdateChannel.init(param)
				this.$refs.AddOrUpdateSaleArea.init(param)
				this.$refs.AddOrUpdateProductParent.init(param)
				// this.$refs.AddOrUpdateUnits.init(param)
				this.$refs.AddOrUpdateBom.init(param)
				this.$refs.AddOrUpdatePill.init(param)
				// this.$refs.AddOrUpdateInventory.init(param)
				param.flag = true
				this.$refs.AddOrUpdateProductInfo.init(param)
			} else if (tab.name === '2') {
				this.$refs.AddOrUpdateProductInfo.init(param)
				this.$refs.AddOrUpdateDescribe.init(param)
				this.$refs.AddOrUpdateAfterSale.init(param)
				this.$refs.AddOrUpdatePrice.init(param)
				this.$refs.AddOrUpdateProperty.init(param)
				this.$refs.AddOrUpdateChannel.init(param)
				this.$refs.AddOrUpdateSaleArea.init(param)
				this.$refs.AddOrUpdateProductParent.init(param)
				// this.$refs.AddOrUpdateUnits.init(param)
				this.$refs.AddOrUpdateBom.init(param)
				this.$refs.AddOrUpdatePill.init(param)
				// this.$refs.AddOrUpdateInventory.init(param)
				param.flag = true
				this.$refs.AddOrUpdateMedia.init(param)
			} else if (tab.name === '3') {
				this.$refs.AddOrUpdateProductInfo.init(param)
				this.$refs.AddOrUpdateMedia.init(false)
				this.$refs.AddOrUpdateAfterSale.init(param)
				this.$refs.AddOrUpdatePrice.init(param)
				this.$refs.AddOrUpdateProperty.init(param)
				this.$refs.AddOrUpdateChannel.init(param)
				this.$refs.AddOrUpdateSaleArea.init(param)
				this.$refs.AddOrUpdateProductParent.init(param)
				// this.$refs.AddOrUpdateUnits.init(param)
				this.$refs.AddOrUpdateBom.init(param)
				this.$refs.AddOrUpdatePill.init(param)
				// this.$refs.AddOrUpdateInventory.init(param)
				param.flag = true
				this.$refs.AddOrUpdateDescribe.init(param)
			} else if (tab.name === '4') {
				this.$refs.AddOrUpdateProductInfo.init(param)
				this.$refs.AddOrUpdateMedia.init(false)
				this.$refs.AddOrUpdateDescribe.init(param)
				this.$refs.AddOrUpdatePrice.init(param)
				this.$refs.AddOrUpdateProperty.init(param)
				this.$refs.AddOrUpdateChannel.init(param)
				this.$refs.AddOrUpdateSaleArea.init(param)
				this.$refs.AddOrUpdateProductParent.init(param)
				// this.$refs.AddOrUpdateUnits.init(param)
				this.$refs.AddOrUpdateBom.init(param)
				this.$refs.AddOrUpdatePill.init(param)
				// this.$refs.AddOrUpdateInventory.init(param)
				param.flag = true
				this.$refs.AddOrUpdateAfterSale.init(param)
			} else if (tab.name === '5') {
				this.$refs.AddOrUpdateProductInfo.init(param)
				this.$refs.AddOrUpdateMedia.init(false)
				this.$refs.AddOrUpdateDescribe.init(param)
				this.$refs.AddOrUpdateAfterSale.init(param)
				this.$refs.AddOrUpdateProperty.init(param)
				this.$refs.AddOrUpdateChannel.init(param)
				this.$refs.AddOrUpdateSaleArea.init(param)
				this.$refs.AddOrUpdateProductParent.init(param)
				// this.$refs.AddOrUpdateUnits.init(param)
				this.$refs.AddOrUpdateBom.init(param)
				this.$refs.AddOrUpdatePill.init(param)
				// this.$refs.AddOrUpdateInventory.init(param)
				param.flag = true
				this.$refs.AddOrUpdatePrice.init(param)
			} else if (tab.name === '6') {
				this.$refs.AddOrUpdateProductInfo.init(param)
				this.$refs.AddOrUpdateMedia.init(false)
				this.$refs.AddOrUpdateDescribe.init(param)
				this.$refs.AddOrUpdateAfterSale.init(param)
				this.$refs.AddOrUpdatePrice.init(param)
				this.$refs.AddOrUpdateChannel.init(param)
				this.$refs.AddOrUpdateSaleArea.init(param)
				this.$refs.AddOrUpdateProductParent.init(param)
				// this.$refs.AddOrUpdateUnits.init(param)
				this.$refs.AddOrUpdateBom.init(param)
				this.$refs.AddOrUpdatePill.init(param)
				// this.$refs.AddOrUpdateInventory.init(param)
				param.flag = true
				this.$refs.AddOrUpdateProperty.init(param)
			} else if (tab.name === '7') {
				this.$refs.AddOrUpdateProductInfo.init(param)
				this.$refs.AddOrUpdateMedia.init(false)
				this.$refs.AddOrUpdateDescribe.init(param)
				this.$refs.AddOrUpdateAfterSale.init(param)
				this.$refs.AddOrUpdatePrice.init(param)
				this.$refs.AddOrUpdateProperty.init(param)
				this.$refs.AddOrUpdateSaleArea.init(param)
				this.$refs.AddOrUpdateProductParent.init(param)
				// this.$refs.AddOrUpdateUnits.init(param)
				this.$refs.AddOrUpdateBom.init(param)
				this.$refs.AddOrUpdatePill.init(param)
				// this.$refs.AddOrUpdateInventory.init(param)
				param.flag = true
				this.$refs.AddOrUpdateChannel.init(param)
			} else if (tab.name === '8') {
				this.$refs.AddOrUpdateProductInfo.init(param)
				this.$refs.AddOrUpdateMedia.init(false)
				this.$refs.AddOrUpdateDescribe.init(param)
				this.$refs.AddOrUpdateAfterSale.init(param)
				this.$refs.AddOrUpdatePrice.init(param)
				this.$refs.AddOrUpdateProperty.init(param)
				this.$refs.AddOrUpdateChannel.init(param)
				this.$refs.AddOrUpdateProductParent.init(param)
				// this.$refs.AddOrUpdateUnits.init(param)
				this.$refs.AddOrUpdateBom.init(param)
				this.$refs.AddOrUpdatePill.init(param)
				// this.$refs.AddOrUpdateInventory.init(param)
				param.flag = true
				this.$refs.AddOrUpdateSaleArea.init(param)
			} else if (tab.name === '9') {
				this.$refs.AddOrUpdateProductInfo.init(param)
				this.$refs.AddOrUpdateMedia.init(false)
				this.$refs.AddOrUpdateDescribe.init(param)
				this.$refs.AddOrUpdateAfterSale.init(param)
				this.$refs.AddOrUpdatePrice.init(param)
				this.$refs.AddOrUpdateProperty.init(param)
				this.$refs.AddOrUpdateChannel.init(param)
				this.$refs.AddOrUpdateSaleArea.init(param)
				// this.$refs.AddOrUpdateUnits.init(param)
				this.$refs.AddOrUpdateBom.init(param)
				this.$refs.AddOrUpdatePill.init(param)
				// this.$refs.AddOrUpdateInventory.init(param)
				param.flag = true
				this.$refs.AddOrUpdateProductParent.init(param)
			} else if (tab.name === '10') {
				this.$refs.AddOrUpdateProductInfo.init(param)
				this.$refs.AddOrUpdateMedia.init(false)
				this.$refs.AddOrUpdateDescribe.init(param)
				this.$refs.AddOrUpdateAfterSale.init(param)
				this.$refs.AddOrUpdatePrice.init(param)
				this.$refs.AddOrUpdateProperty.init(param)
				this.$refs.AddOrUpdateSaleArea.init(param)
				this.$refs.AddOrUpdateProductParent.init(param)
				// this.$refs.AddOrUpdateUnits.init(param)
				this.$refs.AddOrUpdateBom.init(param)
				this.$refs.AddOrUpdatePill.init(param)
				// this.$refs.AddOrUpdateInventory.init(param)
				param.flag = true
				param.status = this.status
				this.$refs.AddOrUpdateChannel.init(param)
			} else if (tab.name === '11') {
				this.$refs.AddOrUpdateProductInfo.init(param)
				this.$refs.AddOrUpdateMedia.init(false)
				this.$refs.AddOrUpdateDescribe.init(param)
				this.$refs.AddOrUpdateAfterSale.init(param)
				this.$refs.AddOrUpdatePrice.init(param)
				this.$refs.AddOrUpdateProperty.init(param)
				this.$refs.AddOrUpdateChannel.init(param)
				this.$refs.AddOrUpdateSaleArea.init(param)
				this.$refs.AddOrUpdateProductParent.init(param)
				this.$refs.AddOrUpdateBom.init(param)
				this.$refs.AddOrUpdatePill.init(param)
				// this.$refs.AddOrUpdateInventory.init(param)
				param.flag = true
				param.unitsName = this.unitsName
				// this.$refs.AddOrUpdateUnits.init(param)
			} else if (tab.name === '12') {
				this.$refs.AddOrUpdateProductInfo.init(param)
				this.$refs.AddOrUpdateMedia.init(false)
				this.$refs.AddOrUpdateDescribe.init(param)
				this.$refs.AddOrUpdateAfterSale.init(param)
				this.$refs.AddOrUpdatePrice.init(param)
				this.$refs.AddOrUpdateProperty.init(param)
				this.$refs.AddOrUpdateChannel.init(param)
				this.$refs.AddOrUpdateSaleArea.init(param)
				this.$refs.AddOrUpdateProductParent.init(param)
				// this.$refs.AddOrUpdateUnits.init(param)
				this.$refs.AddOrUpdatePill.init(param)
				// this.$refs.AddOrUpdateInventory.init(param)
				param.flag = true
				this.$refs.AddOrUpdateBom.init(param)
			} else if (tab.name === '13') {
				this.$refs.AddOrUpdateProductInfo.init(param)
				this.$refs.AddOrUpdateMedia.init(false)
				this.$refs.AddOrUpdateDescribe.init(param)
				this.$refs.AddOrUpdateAfterSale.init(param)
				this.$refs.AddOrUpdatePrice.init(param)
				this.$refs.AddOrUpdateProperty.init(param)
				this.$refs.AddOrUpdateChannel.init(param)
				this.$refs.AddOrUpdateSaleArea.init(param)
				this.$refs.AddOrUpdateProductParent.init(param)
				// this.$refs.AddOrUpdateUnits.init(param)
				this.$refs.AddOrUpdateBom.init(param)
				// this.$refs.AddOrUpdateInventory.init(param)
				param.flag = true
				this.$refs.AddOrUpdatePill.init(param)
			} else if (tab.name === '14') {
				this.$refs.AddOrUpdateProductInfo.init(param)
				this.$refs.AddOrUpdateMedia.init(false)
				this.$refs.AddOrUpdateDescribe.init(param)
				this.$refs.AddOrUpdateAfterSale.init(param)
				this.$refs.AddOrUpdatePrice.init(param)
				this.$refs.AddOrUpdateProperty.init(param)
				this.$refs.AddOrUpdateChannel.init(param)
				this.$refs.AddOrUpdateSaleArea.init(param)
				this.$refs.AddOrUpdateProductParent.init(param)
				// this.$refs.AddOrUpdateUnits.init(param)
				this.$refs.AddOrUpdateBom.init(param)
				this.$refs.AddOrUpdatePill.init(param)
				param.flag = true
				// this.$refs.AddOrUpdateInventory.init(param)
			}
		},
	},

  created() {
  },
  mounted() {
		this.productId = this.$route.params.productId
		this.getDataList()
	}

}
</script>

<style scoped lang="scss">

</style>
